home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Applications 2004 May / SGI IRIX 6.5 Applications 2004 May.iso / relnotes / mpt / ch04.z / ch04
Encoding:
Text File  |  2004-04-07  |  29.3 KB  |  595 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        4.  _N_e_w__F_e_a_t_u_r_e_s
  9.  
  10.        This chapter describes MPT features released in  MPT 1.6.1
  11.        and later releases.  Text that applies to IRIX systems only
  12.        is marked "IRIX systems only."  Text that applies to Linux
  13.        systems only is marked "Linux systems only."
  14.  
  15.  
  16.        4.1  _N_e_w__F_e_a_t_u_r_e_s__f_o_r__M_P_T__R_e_l_e_a_s_e__1_._6_._1
  17.  
  18.        This section describes the features that are new in the MPT
  19.        1.6.1 release. The MPT 1.6.1 release is a Linux only
  20.        release, so all of the features described in this section
  21.        apply to Linux systems. However, some of the features will
  22.        be available also on IRIX systems in a subsequent release.
  23.        These are marked, "IRIX systems, subsequent release." The
  24.        features not marked are already available on IRIX systems
  25.        and are being introduced for Linux systems with this
  26.        release.
  27.  
  28.  
  29.        4.1.1  _G_e_n_e_r_a_l_i_z_e_d _R_e_q_u_e_s_t_s (_I_R_I_X _s_y_s_t_e_m_s, _s_u_b_s_e_q_u_e_n_t
  30.        _r_e_l_e_a_s_e)
  31.        The following MPI-2 generalized request routines are
  32.        implemented for Linux in MPT 1.6.1:
  33.  
  34.          MMMMPPPPIIII____RRRReeeeqqqquuuueeeesssstttt____ggggeeeetttt____ssssttttaaaattttuuuussss
  35.          MMMMPPPPIIII____GGGGrrrreeeeqqqquuuueeeesssstttt____ccccoooommmmpppplllleeeetttteeee
  36.          MMMMPPPPIIII____GGGGrrrreeeeqqqquuuueeeesssstttt____ssssttttaaaarrrrtttt
  37.          MMMMPPPPIIII____SSSSttttaaaattttuuuussss____sssseeeetttt____ccccaaaannnncccceeeelllllllleeeedddd
  38.          MMMMPPPPIIII____SSSSttttaaaattttuuuussss____sssseeeetttt____eeeelllleeeemmmmeeeennnnttttssss
  39.  
  40.        Also, the MMMMPPPPIIII____SSSSTTTTAAAATTTTUUUUSSSS____IIIIGGGGNNNNOOOORRRREEEE or MMMMPPPPIIII____SSSSTTTTAAAATTTTUUUUSSSSEEEESSSS____IIIIGGGGNNNNOOOORRRREEEE symbol
  41.        can be passed to any MPT routine in place of a scalar or an
  42.        array, respectively, of type MMMMPPPPIIII____SSSSttttaaaattttuuuussss to indicate that no
  43.        status information need be returned.
  44.  
  45.  
  46.        4.1.2  _R_O_M_I_O__1_._2_._4__(_I_R_I_X__s_y_s_t_e_m_s_,__s_u_b_s_e_q_u_e_n_t__r_e_l_e_a_s_e_)
  47.        The 1.6.1 version of MPT includes ROMIO version 1.2.4 for
  48.        Linux systems. New features in this release include
  49.        aggregation control hints ccccbbbb____ccccoooonnnnffffiiiigggg____lllliiiisssstttt, rrrroooommmmiiiioooo____ccccbbbb____rrrreeeeaaaadddd and
  50.        rrrroooommmmiiiioooo____ccccbbbb____wwwwrrrriiiitttteeee. XFS filesystems are supported under both
  51.        IRIX and Linux operating systems.
  52.  
  53.  
  54.        4.1.3  _S_t_a_r_t_u_p__I_n_i_t_i_a_l_i_z_a_t_i_o_n
  55.        MPT now initializes during the loading of the MPI library,
  56.        rather than waiting until the first MMMMPPPPIIII____IIIInnnniiiitttt call.  This
  57.        allows MPI to control the environment for optimizing
  58.        purposes when used with other libraries, such as OpenMP. To
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.        initialize MPI first, include the ----llllmmmmppppiiii command last in the
  75.        list of libraries on the compile line.
  76.  
  77.  
  78.        4.1.4  _A_r_r_a_y__S_e_r_v_i_c_e_s__S_u_p_p_o_r_t
  79.        By default on Linux systems, mmmmppppiiiirrrruuuunnnn uses Array Services to
  80.        launch MPI jobs and clean up stray MPI processes upon
  81.        abnormal job termination.
  82.  
  83.        If the mmmmppppiiiirrrruuuunnnn command displays a message that Array Services
  84.        is not running, check that it is installed correctly, as
  85.        follows:
  86.  
  87.          1.  Determine if the Array Services package is installed
  88.              by invoking the rrrrppppmmmm ----qqqq ssssggggiiii----aaaarrrrrrrraaaayyyyssssvvvvccccssss command.  If it
  89.              is installed, refer to the aaaarrrrrrrraaaayyyy____sssseeeerrrrvvvviiiicccceeeessss,
  90.              aaaarrrrrrrraaaayyyydddd....ccccoooonnnnffff, and aaaarrrrrrrraaaayyyydddd....aaaauuuutttthhhh man pages for proper
  91.              configuration.
  92.  
  93.          2.  Determine if the daemon is running by invoking the
  94.              following command:
  95.  
  96.              ppppssss ----eeeeffff |||| ggggrrrreeeepppp aaaarrrrrrrraaaayyyydddd
  97.  
  98.              If the daemon is not running, start it by invoking the
  99.              following command as root:
  100.  
  101.              ////eeeettttcccc////iiiinnnniiiitttt....dddd////aaaarrrrrrrraaaayyyy ssssttttaaaarrrrtttt
  102.  
  103.              If the daemon is running, but you have made
  104.              configuration changes, as root, restart it by invoking
  105.              the following command:
  106.  
  107.              ////eeeettttcccc////iiiinnnniiiitttt....dddd////aaaarrrrrrrraaaayyyy rrrreeeessssttttaaaarrrrtttt
  108.  
  109.          3.  Determine if your configuration contains any errors by
  110.              invoking the following command:
  111.  
  112.              ////uuuussssrrrr////eeeettttcccc////aaaasssscccchhhheeeecccckkkk
  113.  
  114.              Remember, after making configuration changes, you will
  115.              need to restart the aaaarrrrrrrraaaayyyydddd daemon, as previously
  116.              noted.
  117.  
  118.        Note:  On IRIX systems, mmmmppppiiiirrrruuuunnnn also uses Array Services by
  119.        default.
  120.  
  121.  
  122.        4.1.5  _M_P_I_-_2__A_t_t_r_i_b_u_t_e_s__(_I_R_I_X__s_y_s_t_e_m_s_,__s_u_b_s_e_q_u_e_n_t__r_e_l_e_a_s_e_)
  123.        MPT 1.6.1 supports MPI-2 attributes, as described in section
  124.        8.8 of the MPI-2 standard.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.        4.1.6  _S_i_n_g_l_e_-_C_o_p_y__M_o_d_e__S_u_p_p_o_r_t_e_d
  141.        MPT 1.6.1 supports single-copy mode for MPI communication on
  142.        Linux systems.  This feature is supported for both single-
  143.        host MPI jobs and MPI jobs running across partitions.
  144.  
  145.        The MMMMPPPPIIII____BBBBUUUUFFFFFFFFEEEERRRR____MMMMAAAAXXXX environment variable must be set to an
  146.        appropriate value to enable single-copy transfers.  This is
  147.        disabled by default.
  148.  
  149.        On Linux, the single-copy feature uses the xpmem module to
  150.        map memory from one MPI process onto another during job
  151.        startup.  The mapped areas include the static region,
  152.        private heap and stack region.  Single copy is supported for
  153.        contiguous data types from any of the mapped regions.
  154.  
  155.        Memory mapping is enabled by default on Linux.  To disable
  156.        it, set the MMMMPPPPIIII____MMMMEEEEMMMMMMMMAAAAPPPP____OOOOFFFFFFFF environment variable.
  157.  
  158.        The xpmem kernel module must be installed on your system for
  159.        single-copy mode to be supported.  The xpmem module is
  160.        released with the OS.
  161.  
  162.  
  163.        4.1.7  _M_P_I_-_2__O_n_e_-_S_i_d_e_d__C_o_m_m_u_n_i_c_a_t_i_o_n__S_u_p_p_o_r_t
  164.        MPT 1.6.1 supports a subset of one-sided communication on
  165.        Linux systems.  The following MPI-2 functions are supported:
  166.  
  167.          MMMMPPPPIIII____WWWWiiiinnnn____ccccrrrreeeeaaaatttteeee
  168.          MMMMPPPPIIII____WWWWiiiinnnn____ffffeeeennnncccceeee
  169.          MMMMPPPPIIII____PPPPuuuutttt
  170.          MMMMPPPPIIII____GGGGeeeetttt
  171.  
  172.        These functions are supported for both single-host MPI jobs
  173.        and MPI jobs running across partitions.
  174.  
  175.        On Linux, the one-sided functions use the xpmem module to
  176.        map memory from one MPI process onto another during job
  177.        startup.  The mapped areas include the static region,
  178.        private heap, and stack region.  The one-sided functions are
  179.        supported for windows residing in any of the mapped regions.
  180.  
  181.        Memory mapping is enabled by default on Linux.  To disable
  182.        it, set the MMMMPPPPIIII____MMMMEEEEMMMMMMMMAAAAPPPP____OOOOFFFFFFFF environment variable.
  183.  
  184.        The xpmem kernel module must be installed on your system to
  185.        support the MPI one-sided functions.  The xpmem module is
  186.        released with the OS.
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.        4.1.8  _X_P_M_E_M__D_r_i_v_e_r__S_u_p_p_o_r_t_e_d__f_o_r__P_a_r_t_i_t_i_o_n_e_d__S_y_s_t_e_m_s
  207.        MPT 1.6.1 supports the XPMEM (cross partition) device driver
  208.        for Linux systems.  This feature allows MPI processes
  209.        running on one partition to communicate with MPI processes
  210.        running on a different partition via the NUMAlink network.
  211.  
  212.        The MPI/XPMEM driver for Linux supports the standard
  213.        send/receive model in both buffered and single-copy modes,
  214.        in addition to the MPI-2 one-sided functions
  215.        (MMMMPPPPIIII____WWWWiiiinnnn____ccccrrrreeeeaaaatttteeee,,,, MMMMPPPPIIII____WWWWiiiinnnn____ffffeeeennnncccceeee, MMMMPPPPIIII____PPPPuuuutttt, and MMMMPPPPIIII____GGGGeeeetttt).
  216.  
  217.        The use of the XPMEM driver allows MPI to extend the cache
  218.        coherency domain of the system to include all the partitions
  219.        being used, up to a 512 process limit.  This allows MPI to
  220.        maintain very low latency and high bandwidth across
  221.        partitioned systems.
  222.  
  223.        The MPI/XPMEM driver requires the xpmem kernel module to be
  224.        installed on your system.  The xpmem module is released with
  225.        the OS.
  226.  
  227.        When running an MPI job across partitions, MPI automatically
  228.        selects the XPMEM interconnect, if available.  For more
  229.        information, see "Default Interconnect Selection" in the MMMMPPPPIIII
  230.        man page.
  231.  
  232.        If MPI is successful in configuring the XPMEM driver on a
  233.        partitioned system, the following message appears at startup
  234.        when using the ----vvvv (verbose) option:
  235.  
  236.            MMMMPPPPIIII:::: UUUUssssiiiinnnngggg tttthhhheeee XXXXPPPPMMMMEEEEMMMM NNNNUUUUMMMMAAAAlllliiiinnnnkkkk iiiinnnntttteeeerrrrccccoooonnnnnnnneeeecccctttt....
  237.  
  238.        4.1.9  _M_P_I___A_l_l_o_c___m_e_m__a_n_d__M_P_I___F_r_e_e___m_e_m__S_u_p_p_o_r_t_e_d
  239.        The MPT 1.6.1 release supports the MPI-2 functions
  240.        MMMMPPPPIIII____AAAAlllllllloooocccc____mmmmeeeemmmm and MMMMPPPPIIII____FFFFrrrreeeeeeee____mmmmeeeemmmm on Linux systems.
  241.        MMMMPPPPIIII____AAAAlllllllloooocccc____mmmmeeeemmmm allocates memory from the private heap, and is
  242.        used in conjunction with MMMMPPPPIIII____FFFFrrrreeeeeeee____mmmmeeeemmmm, which frees the
  243.        dynamically allocated memory.
  244.  
  245.  
  246.        4.1.10  _N_u_m_a___P_l_a_c_e_m_e_n_t___S_u_p_p_o_r_t
  247.        Users have used environment variables to enable nonuniform
  248.        memory access (NUMA) optimization placement on IRIX systems.
  249.        Some of this functionality is now available on Linux
  250.        systems.
  251.  
  252.        You can now use the MMMMPPPPIIII____DDDDSSSSMMMM____CCCCPPPPUUUULLLLIIIISSSSTTTT to link MPI ranks to the
  253.        specified CPUs.  You can also use the MMMMPPPPIIII____DDDDSSSSMMMM____MMMMUUUUSSSSTTTTRRRRUUUUNNNN
  254.        environment variable when running on a dedicated system or
  255.        within a restricted set of CPUs (either with ccccppppuuuusssseeeettttssss or
  256.        rrrruuuunnnnoooonnnn) to ensure the MPI ranks are linked to those CPUs.
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                   - 5 -
  269.  
  270.  
  271.  
  272.        Other environment variables now supported on Linux systems
  273.        are MMMMPPPPIIII____DDDDSSSSMMMM____OOOOFFFFFFFF and MMMMPPPPIIII____DDDDSSSSMMMM____VVVVEEEERRRRBBBBOOOOSSSSEEEE.
  274.  
  275.  
  276.        4.2  _N_e_w__F_e_a_t_u_r_e_s__f_o_r__M_P_T__R_e_l_e_a_s_e__1_._7
  277.  
  278.        This section describes the features that are new in the MPT
  279.        1.7 release. For IRIX customers, the features in the
  280.        previous section ("New Features for MPT Release 1.6.1) that
  281.        are marked, "IRIX systems, subsequent release," are also new
  282.        for this release.
  283.  
  284.  
  285.        4.2.1  _M_P_I___W_i_n___l_o_c_k__a_n_d__M_P_I___W_i_n___u_n_l_o_c_k__S_u_p_p_o_r_t_e_d
  286.        The MPT 1.7 release supports the MPI-2 functions
  287.        MMMMPPPPIIII____WWWWiiiinnnn____lllloooocccckkkk and MMMMPPPPIIII____WWWWiiiinnnn____uuuunnnnlllloooocccckkkk. These functions allow the
  288.        user to protect access to remote memory windows.
  289.  
  290.  
  291.        4.2.2  _R_e_d_u_c_e_d__S_t_a_r_t_u_p__T_i_m_e__O_v_e_r_h_e_a_d
  292.        Changes have been made to significantly reduce the startup
  293.        time for MPI and SHMEM jobs.  For more detailed information,
  294.        see the iiiinnnnttttrrrroooo____sssshhhhmmmmeeeemmmm man page.
  295.  
  296.  
  297.        4.2.3  _S_H_M_E_M__S_u_p_p_o_r_t_e_d__o_n__L_i_n_u_x__S_y_s_t_e_m_s
  298.        The MPT 1.7 release supports the SHMEM programming model for
  299.        Linux systems.  On Linux, mmmmppppiiiirrrruuuunnnn is required to launch SHMEM
  300.        programs. For this release, SHMEM is supported for single
  301.        host jobs only.  For more detailed information, see the
  302.        iiiinnnnttttrrrroooo____sssshhhhmmmmeeeemmmm man page.
  303.  
  304.  
  305.        4.2.4  _M_P_I___N_A_P__E_n_v_i_r_o_n_m_e_n_t__V_a_r_i_a_b_l_e
  306.        The MPT 1.7 release supports the MMMMPPPPIIII____NNNNAAAAPPPP environment
  307.        variable to control the way in which ranks wait for events
  308.        to occur.  You can find more information in the MMMMPPPPIIII(1) man
  309.        page.
  310.  
  311.  
  312.        4.3  _N_e_w__F_e_a_t_u_r_e_s__f_o_r__M_P_T__R_e_l_e_a_s_e__1_._8
  313.  
  314.  
  315.  
  316.        4.3.1  _S_u_p_p_o_r_t__f_o_r__H_I_P_P_I_-_8_0_0__O_S__B_y_p_a_s_s__W_i_l_l__C_e_a_s_e__i_n__M_P_T__1_._9
  317.         The OS bypass support for MPI across HIPPI will be removed
  318.        from MPT feature releases after MPT 1.8.  The MPT
  319.        engineering team will focus future efforts on supporting MPI
  320.        features on NUMAlink, GSN, and Myrinet-based systems and
  321.        clusters.
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                   - 6 -
  335.  
  336.  
  337.  
  338.        4.3.2  _S_u_p_p_o_r_t__f_o_r__M_P_I___I_N___P_L_A_C_E
  339.        The MPT 1.8 release supports the MPI-2 argument
  340.        MMMMPPPPIIII____IIIINNNN____PPPPLLLLAAAACCCCEEEE. Collective communications can occur "in place"
  341.        for intracommunicators, with the output buffer being
  342.        identical to the input buffer.  This is specified by
  343.        providing a special argument value, MMMMPPPPIIII____IIIINNNN____PPPPLLLLAAAACCCCEEEE, instead of
  344.        the send buffer or the receive buffer argument.
  345.  
  346.  
  347.        4.3.3  _S_u_p_p_o_r_t__o_f__M_P_I___A_c_c_u_m_u_l_a_t_e
  348.        The MPT 1.8 release supports the MPI-2 function
  349.        MMMMPPPPIIII____AAAAccccccccuuuummmmuuuullllaaaatttteeee.  This is a one-sided communication function
  350.        that combines the data moved to the target process with the
  351.        data that already resides at that process, rather than
  352.        replacing the data there.
  353.  
  354.  
  355.        4.3.4  _A_d_d_i_t_i_o_n_a_l__N_U_M_A__p_l_a_c_e_m_e_n_t__s_u_p_p_o_r_t__o_n__L_i_n_u_x
  356.        NUMA placement can be critical for MPI codes on Linux.  This
  357.        is also the case for hybrid OpenMP/MPI codes.  Support has
  358.        been added for "containing" the OpenMP threads near the MPI
  359.        ranks in this release. Although these threads  are not
  360.        "pinned," they are restricted to run only on a certain set
  361.        of CPUs, based on the OOOOMMMMPPPP____NNNNUUUUMMMM____TTTTHHHHRRRREEEEAAAADDDDSSSS environment variable.
  362.        The "pinning" of the OpenMP threads will be considered in a
  363.        future release.
  364.  
  365.        In addition, support for the MMMMPPPPIIII____DDDDSSSSMMMM____PPPPPPPPMMMM environment
  366.        variable is enabled. The environment variable
  367.        MMMMPPPPIIII____DDDDSSSSMMMM____MMMMUUUUSSSSTTTTRRRRUUUUNNNN has been deprecated in favor of
  368.        MMMMPPPPIIII____DDDDSSSSMMMM____DDDDIIIISSSSTTTTRRRRIIIIBBBBUUUUTTTTEEEE on Linux only.  The displayed information
  369.        generated by the MMMMPPPPIIII____DDDDSSSSMMMM____VVVVEEEERRRRBBBBOOOOSSSSEEEE environment variable has
  370.        been enhanced to display information related to these new
  371.        features.
  372.  
  373.  
  374.        4.3.5  _E_n_h_a_n_c_e_d__M_P_I___B_a_r_r_i_e_r__a_n_d__M_P_I___W_i_n___f_e_n_c_e
  375.        An optimized implementation of the MMMMPPPPIIII____BBBBaaaarrrrrrrriiiieeeerrrr and
  376.        MMMMPPPPIIII____WWWWiiiinnnn____ffffeeeennnncccceeee functions has been introduced in this release.
  377.        This optimized path can be used with barriers or fences on
  378.        arbitrary communicators and windows.  In this release, this
  379.        optimized implementation is generally not activated by
  380.        default. The feature can be activated by setting the
  381.        MMMMPPPPIIII____BBBBAAAARRRR____DDDDIIIISSSSSSSSEEEEMMMM or MMMMPPPPIIII____BBBBAAAARRRR____TTTTRRRREEEEEEEE environment variables.  For
  382.        further details on activating this feature, see the MMMMPPPPIIII man
  383.        page.
  384.  
  385.  
  386.        4.3.6  _I_m_p_r_o_v_e_d__M_P_I__L_a_t_e_n_c_y
  387.        Changes have been made in the MPT 1.8 release to reduce the
  388.        MPI send/receive latency.  Several of these changes affect
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                                   - 7 -
  401.  
  402.  
  403.  
  404.        both IRIX and Linux implementations. The most pronounced
  405.        improvements can be seen on SGI Altix 3000 systems for
  406.        send/receive latency  measured between two processes that
  407.        share the same SHub, and for latency between processes
  408.        residing on different partitions.
  409.  
  410.  
  411.        4.3.7  _S_H_M_E_M__S_u_p_p_o_r_t__f_o_r__P_a_r_t_i_t_i_o_n_e_d__L_i_n_u_x__S_y_s_t_e_m_s
  412.        The MPT 1.8 release supports the SHMEM programming model for
  413.        partitioned Linux systems.  On Linux, the mmmmppppiiiirrrruuuunnnn multiple
  414.        host syntax is required to launch a SHMEM application on
  415.        multiple partitions.  SHMEM routines can be used exclusively
  416.        in an application, or can be used in conjunction with MPI
  417.        message passing routines in the same application.  For more
  418.        detailed information, see the iiiinnnnttttrrrroooo____sssshhhhmmmmeeeemmmm man page.
  419.  
  420.  
  421.        4.3.8  _S_t_a_c_k__T_r_a_c_e_b_a_c_k__a_n_d__C_o_r_e__D_u_m_p__C_o_n_t_r_o_l
  422.        With MPT 1.8, if a rank aborts, either by calling
  423.        MPI_Abort() or by receiving an unhandled signal which
  424.        normally results in a core dump, MPT will display a stack
  425.        traceback showing the location of the abort.
  426.  
  427.        MPT will limit creation of core files to the first rank on
  428.        each host to abort, by default.
  429.  
  430.        More information is located in the MMMMPPPPIIII(1) man page under the
  431.        MMMMPPPPIIII____CCCCOOOORRRREEEEDDDDUUUUMMMMPPPP and MMMMPPPPIIII____CCCCOOOORRRREEEEDDDDUUUUMMMMPPPP____DDDDEEEEBBBBUUUUGGGGGGGGEEEERRRR environment variable
  432.        descriptions.
  433.  
  434.  
  435.        4.3.9  _R_O_M_I_O__M_o_d_i_f_i_c_a_t_i_o_n_s
  436.        With MPT 1.8, the ROMIO software (which supplies the MPI-2
  437.        File I/O routines) has been modified so that the special
  438.        MMMMPPPPIIIIOOOO____RRRReeeeqqqquuuueeeesssstttt datatype and the MMMMPPPPIIIIOOOO____WWWWaaaaiiiitttt() and MMMMPPPPIIIIOOOO____TTTTeeeesssstttt()
  439.        routines are no longer required to be used. Instead, the
  440.        MPI-1 MMMMPPPPIIII____RRRReeeeqqqquuuueeeesssstttt datatype and the MMMMPPPPIIII____WWWWaaaaiiiitttt****() and
  441.        MMMMPPPPIIII____TTTTeeeesssstttt****() series of routines can be used.
  442.  
  443.        Existing binaries will continue to work properly if they
  444.        call the older MMMMPPPPIIIIOOOO**** routines.  Source code does not need to
  445.        be modified to use the MMMMPPPPIIII____RRRReeeeqqqquuuueeeesssstttt datatype and routines.
  446.        Your existing source will compile without comment.  However,
  447.        if you do modify your source and recompile, you will be able
  448.        to call MMMMPPPPIIII____WWWWaaaaiiiittttaaaannnnyyyy(), for example, with a mix of
  449.        MMMMPPPPIIII____RRRReeeeqqqquuuueeeesssstttt requests returned from communication calls like
  450.        MMMMPPPPIIII____IIIIsssseeeennnndddd() and requests returned from I/O routines like
  451.        MMMMPPPPIIII____FFFFiiiilllleeee____iiiiwwwwrrrriiiitttteeee().  This unification of I/O and
  452.        communication requests can lead to simplification of your
  453.        code and enhanced overlapping of I/O and program execution.
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.                                   - 8 -
  467.  
  468.  
  469.  
  470.        However, if you do modify your source as outlined above, you
  471.        must execute the program using MPT 1.8 or later only;
  472.        earlier versions of the MPT library will not correctly run
  473.        such programs.
  474.  
  475.  
  476.        4.4  _N_e_w__F_e_a_t_u_r_e_s__f_o_r__M_P_T__R_e_l_e_a_s_e__1_._9
  477.  
  478.        4.4.1  _M_P_I_-_2__P_r_o_c_e_s_s__M_a_n_a_g_e_r__I_n_t_e_r_f_a_c_e__F_u_n_c_t_i_o_n_a_l_i_t_y
  479.        MPI-2 functionality for the MMMMPPPPIIII____CCCCoooommmmmmmm____ssssppppaaaawwwwnnnn and related
  480.        functions and attributes described in sections 5.3, 5.5.1,
  481.        and 5.5.3 of the MPI-2 standard is enabled for Linux
  482.        partitioned systems in this release. For further details,
  483.        see the mmmmppppiiiirrrruuuunnnn(1) and MMMMPPPPIIII(1) man pages.
  484.  
  485.  
  486.        4.4.2  _U_S_E _M_P_I Available for Linux Users of the Intel efc
  487.        Fortran Compiler
  488.        The USE MPI statement has been available in IRIX Fortran
  489.        since MPT 1.4.  With MPT 1.9, this feature has been added
  490.        for users of efc on Linux as well.  See MMMMPPPPIIII(1) man page for
  491.        details, including the need for a -I option to efc.
  492.  
  493.  
  494.        4.4.3  _E_n_h_a_n_c_e_d _M_P_I__B_a_r_r_i_e_r _a_n_d _M_P_I__W_i_n__f_e_n_c_e _b_y _D_e_f_a_u_l_t _o_n
  495.        _L_i_n_u_x
  496.        In MPT 1.8, an enhanced barrier algorithm was implemented
  497.        for the MMMMPPPPIIII____BBBBaaaarrrrrrrriiiieeeerrrr and MMMMPPPPIIII____WWWWiiiinnnn____ffffeeeennnncccceeee functions.  This
  498.        optimized algorithm uses the Altix hardware fetch-op
  499.        synchronization registers, and scales as O(log(n)) as the
  500.        number of processors increases.  In MPT 1.9, this barrier
  501.        algorithm is activated by default on Altix systems when the
  502.        MMMMPPPPIIII____BBBBaaaarrrrrrrriiiieeeerrrr and MMMMPPPPIIII____WWWWiiiinnnn____ffffeeeennnncccceeee functions are called.
  503.  
  504.  
  505.        4.4.4  _A_d_d_i_t_i_o_n_a_l__N_U_M_A__P_l_a_c_e_m_e_n_t__S_u_p_p_o_r_t__o_n__L_i_n_u_x
  506.        MMMMPPPPIIII____DDDDSSSSMMMM____DDDDIIIISSSSTTTTRRRRIIIIBBBBUUUUTTTTEEEE has now been enhanced to support multiple
  507.        executables specified on the same mmmmppppiiiirrrruuuunnnn command. In
  508.        addition support has been added so that MMMMPPPPIIII____DDDDSSSSMMMM____DDDDIIIISSSSTTTTRRRRIIIIBBBBUUUUTTTTEEEE
  509.        also works for MMMMPPPPIIII____CCCCoooommmmmmmm____ssssppppaaaawwwwnnnn.  This support will ensure
  510.        that when run on a dedicated machine or within a cpuset that
  511.        users can get optimal performance.  Users of LSF 5.1 that
  512.        use dynamic cpusets will cause MMMMPPPPIIII____DDDDSSSSMMMM____DDDDIIIISSSSTTTTRRRRIIIIBBBBUUUUTTTTEEEE to be set
  513.        automatically.
  514.  
  515.  
  516.        4.4.5  _S_i_n_g_l_e_-_C_o_p_y__M_o_d_e__E_n_a_b_l_e_d__b_y__D_e_f_a_u_l_t
  517.        MPT 1.9 now supports single-copy mode for MPI communication
  518.        by default for certain situations.  The eligible MPI
  519.        functions include MMMMPPPPIIII____IIIIsssseeeennnndddd, MMMMPPPPIIII____SSSSeeeennnnddddrrrreeeeccccvvvv, MMMMPPPPIIII____AAAAllllllllttttooooaaaallllllll,
  520.        MMMMPPPPIIII____BBBBccccaaaasssstttt, MMMMPPPPIIII____AAAAllllllllrrrreeeedddduuuucccceeee and MMMMPPPPIIII____RRRReeeedddduuuucccceeee.  Users that use
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.                                   - 9 -
  533.  
  534.  
  535.  
  536.        these functions and transfer 2000 bytes or more of data will
  537.        use the single-copy mode for the transfer.  Users of
  538.        MMMMPPPPIIII____SSSSeeeennnndddd should continue to use the MMMMPPPPIIII____BBBBUUUUFFFFFFFFEEEERRRR____MMMMAAAAXXXX
  539.        environment variable to enable single copy. Users who wish
  540.        to disable this optimization can set the
  541.        MMMMPPPPIIII____DDDDEEEEFFFFAAAAUUUULLLLTTTT____SSSSIIIINNNNGGGGLLLLEEEE____CCCCOOOOPPPPYYYY____OOOOFFFFFFFF environment variable.
  542.  
  543.  
  544.        4.4.6  _M_P_I _C++ _b_i_n_d_i_n_g_s _f_o_r _I_n_t_e_l _C++ _8._0 _a_n_d _g++ _3._0
  545.        _c_o_m_p_i_l_e_r_s _o_n _L_i_n_u_x
  546.        MPT 1.9 now contains two separate MPI C++ binding libraries.
  547.        The default libmpi++.so (-lmpi++) library is compatible with
  548.        code generated by the g++ 2.0 versions of the compiler but
  549.        is not binary compatible with g++ 3.0 versions.  A new
  550.        library is now also available libg++3mpi++.so (-lg++3mpi++)
  551.        that is binary compatible with code generated by the g++ 3.0
  552.        compilers as well as that produced by the Intel 8.0 C++
  553.        compiler.
  554.  
  555.  
  556.        4.4.7  _H_I_P_P_I_-_8_0_0__I_n_t_e_r_c_o_n_n_e_c_t__N_o__L_o_n_g_e_r__S_u_p_p_o_r_t_e_d
  557.        The MPT 1.9 release no longer supports the HIPPI-800 OS
  558.        bypass interconnect on IRIX systems.  Support for any
  559.        remaining HIPPI interconnect users will be limited to
  560.        patches for MPT 1.8.
  561.  
  562.  
  563.        4.4.8  _M_P_I__S_u_p_p_o_r_t__f_o_r__L_a_r_g_e__A_l_t_i_x__S_y_s_t_e_m_s
  564.        The MPT 1.9 release has been enhanced to allow support for
  565.        more than 200 MPI processes on a single system image for
  566.        Altix systems.  Please see the FFFFiiiilllleeee____DDDDeeeessssccccrrrriiiippppttttoooorrrr____LLLLiiiimmmmiiiittttssss
  567.        section in Chapter 6 of these Release Notes for information
  568.        on how to increase the system limit of open file
  569.        descriptors.
  570.  
  571.  
  572.        4.4.9  _g_7_7__P_r_o_f_i_l_i_n_g__E_n_t_r_y__P_o_i_n_t_s
  573.        With the MPT 1.9 release, profiling entry points were added
  574.        for Fortran codes using the g77 compiler on Altix.
  575.        Profiling entry points are discussed in Section 4.18 of the
  576.        MPI-2 Standard, and in Chapter 8 of the MPI-1.1 Standard.
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.